openapi: 3.0.1
info:
  title: CDC - ePlanning to Certifier API
  description: >
    # Authentication    


    Please use the subscription key provided by the Department to access the
    APIs.
  contact: {}
  version: v1
servers:
  - url: https://api-uat.apps1.nsw.gov.au/planning
paths:
  /CreateCDC/{CaseID}:
    post:
      summary: CreateCDC
      description: >-
        This operation transfers the CDC application created by the applicant
        from the Online CDC Service to the certifier's IT system.
      operationId: CreateCDCCase
      parameters:
        - name: CaseID
          in: path
          description: A fully qualified application number or case id
          required: true
          schema:
            type: string
        - name: OrganisationID
          in: header
          description: >-
            The council LGA name or Private Certifier Organisation name to
            indicate where the response is routed to.
          required: true
          schema:
            type: string
        - name: IdempotencyId
          in: header
          description: >-
            Unique Id for this request. Allows the API to respond in an
            idempotent way if it has already been called with these parameters
            and prevents duplicate processing. Typically a UUID such as
            "63a9ba30-7a4b-4fac-b343-d1f05cf089f1"
          required: true
          schema:
            type: string
      requestBody:
        description: Information request object
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCDC'
        required: true
      responses:
        '200':
          description: Case Submitted by Applicant
          content: {}
        '400':
          description: Invalid request supplied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Case not found or locked by another user
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      deprecated: false
      x-codegen-request-body-name: body
  /UpdateCDC/{CaseID}:
    put:
      summary: UpdateCDC
      description: >-
        This operation transfers the CDC application's updated details from the
        Online CDC Service to the certifier's IT system.
      operationId: UpdateCDCCase
      parameters:
        - name: CaseID
          in: path
          description: A fully qualified application number or case id
          required: true
          schema:
            type: string
        - name: OrganisationID
          in: header
          description: >-
            The council LGA name or Private Certifier Organisation name to
            indicate where the response is routed to.
          required: true
          schema:
            type: string
        - name: IdempotencyId
          in: header
          description: >-
            Unique Id for this request. Allows the API to respond in an
            idempotent way if it has already been called with these parameters
            and prevents duplicate processing. Typically a UUID such as
            "63a9ba30-7a4b-4fac-b343-d1f05cf089f1"
          required: true
          schema:
            type: string
      requestBody:
        description: Information request object
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateCDC'
        required: true
      responses:
        '200':
          description: Case Submitted by Applicant
          content: {}
        '400':
          description: Invalid request supplied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Case not found or locked by another user
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      deprecated: false
      x-codegen-request-body-name: body
  /Withdraw/{CaseID}:
    put:
      summary: Withdraw
      description: >
        This operation transfers the applicant's decision to withdraw the CDC
        application from

        the Online CDC Service to the certifier's IT system.
      operationId: put-withdraw-caseid
      parameters:
        - name: CaseID
          in: path
          description: A fully qualified application number or case id
          required: true
          schema:
            type: string
        - name: OrganisationID
          in: header
          description: >-
            The council LGA name or Private Certifier Organisation name to
            indicate where the response is routed to.
          required: true
          schema:
            type: string
        - name: IdempotencyId
          in: header
          description: >-
            Unique Id for this request. Allows the API to respond in an
            idempotent way if it has already been called with these parameters
            and prevents duplicate processing. Typically a UUID such as
            "63a9ba30-7a4b-4fac-b343-d1f05cf089f1"
          required: true
          schema:
            type: string
      requestBody:
        description: Information request object
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WithdrawCDC'
        required: true
      responses:
        '200':
          description: Case withdrawn
          content: {}
        '400':
          description: Invalid request supplied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Case not found or locked by another user
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      deprecated: false
      x-codegen-request-body-name: body
  /UpdateAdditionalInfo/{CaseID}:
    put:
      summary: UpdateAdditionalInfo
      description: >-
        This operation transfers additional information uploaded by the
        applicant from the Online CDC Service to the certifier's IT system.
      operationId: put-updateAdditionalInfo-caseid
      parameters:
        - name: CaseID
          in: path
          description: A fully qualified application number or case id
          required: true
          schema:
            type: string
        - name: OrganisationID
          in: header
          description: >-
            Private Certifier Organisation Name to indicate where the request is
            originated from
          required: true
          schema:
            type: string
        - name: IdempotencyId
          in: header
          description: >-
            Unique Id for this request. Allows the API to respond in an
            idempotent way if it has already been called with these parameters
            and prevents duplicate processing. Typically a UUID such as
            "63a9ba30-7a4b-4fac-b343-d1f05cf089f1"
          required: true
          schema:
            type: string
      requestBody:
        description: Information request object
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProvideAddInfo'
        required: true
      responses:
        '201':
          description: Successfully provided the information
          content: {}
        '400':
          description: Invalid request supplied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Provided information not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      deprecated: false
      x-codegen-request-body-name: body
components:
  schemas:
    Person:
      title: Person
      required:
        - familyName
        - firstName
      type: object
      properties:
        firstName:
          maxLength: 20
          type: string
          minLength: 1
        otherName:
          maxLength: 20
          type: string
        familyName:
          maxLength: 20
          type: string
          minLength: 1
        contactNumber:
          maxLength: 10
          minLength: 8
          pattern: ^[0-9]+$
          type: string
        email:
          maxLength: 250
          type: string
    Company:
      title: Company
      required:
        - companyName
      type: object
      properties:
        companyName:
          maxLength: 250
          type: string
          description: >-
            Company Name, this field is mandatory and editiable when user choose
            'isManualEntry' true.
          minLength: 1
        tradeName:
          type: string
          description: >-
            Trade Name, this field is editiable when user choose 'isManualEntry'
            true.
        ABN:
          maxLength: 14
          type: string
          description: >-
            it should be 11 digit number, this field is mandatory and editiable
            when user choose 'isManualEntry' true.
        ACN:
          maxLength: 11
          type: string
          description: >-
            it should be 9 digit number, this field is editiable when user
            choose 'isManualEntry' true.
    contributionDetails:
      type: object
      properties:
        caseID:
          maxLength: 32
          type: string
          example: CON-5453
        status:
          maxLength: 32
          type: string
          example: In-progress
    Applicant:
      title: Applicant
      required:
        - address
        - applicantPerson
      type: object
      properties:
        title:
          $ref: '#/components/schemas/Title'
        applicantPerson:
          $ref: '#/components/schemas/Person'
        address:
          maxLength: 250
          type: string
          minLength: 1
        isApplyBehalfOnCompany:
          type: boolean
          description: Is applicant applying on behalf of a company
        isManualEntry:
          type: boolean
          description: Used to hold manual entry flag for search ABN/ACN
        applyOnBehalfCompany:
          $ref: '#/components/schemas/Company'
        nominatedCompanyApplicant:
          type: boolean
          description: Is the nominated company the applicant for this application
    Owner:
      title: Owner
      type: object
      properties:
        title:
          $ref: '#/components/schemas/Title'
        ownerPerson:
          $ref: '#/components/schemas/Person'
        ownerCompany:
          $ref: '#/components/schemas/Company'
        address:
          maxLength: 250
          type: string
          description: Owner's Address
          example: 19-33 Elizabeth Street, Narrandera, 2700
      description: Must include either a ownerPerson or ownerCompany
    AdditionalInfo:
      title: AdditionalInfo
      required:
        - caseStatus
        - responseDate
      type: object
      properties:
        caseStatus:
          maxLength: 100
          type: string
          description: Status of the request for additional information
          example: Complete
          minLength: 1
        responseDate:
          type: string
          description: Date and time of respond
          format: date
          example: '2020-09-10'
          minLength: 1
        responseDetails:
          maxLength: 1500
          type: string
          description: Additional information description provided by the applicant
        documents:
          type: array
          items:
            $ref: '#/components/schemas/DownloadableDocument'
    Error:
      title: Error
      required:
        - errorCode
        - statusCode
      type: object
      properties:
        statusCode:
          type: integer
          format: int32
          example: 404
        message:
          type: string
          example: Internal Server error 19876
        activityId:
          type: string
          example: 00000011-0ab-xy00-0000-500000000000
        errorCode:
          type: string
          example: DPE_E100
          minLength: 1
        errorDetails:
          type: string
          example: Inner Exceptions, Stack Trace, etc
    PersonDetails:
      title: PersonDetails
      required:
        - email
        - familyName
        - firstName
      type: object
      properties:
        firstName:
          maxLength: 20
          type: string
          example: John
          minLength: 1
        otherName:
          maxLength: 20
          type: string
          example: Darren
        familyName:
          maxLength: 20
          type: string
          example: Smith
          minLength: 1
        email:
          type: string
          example: john.smith@gmail.com
          minLength: 1
        contactNumber:
          maxLength: 10
          minLength: 1
          pattern: ^[0-9]+$
          type: string
    PersonBody:
      title: PersonBody
      required:
        - email
        - familyName
        - firstName
      type: object
      properties:
        firstName:
          maxLength: 20
          type: string
          example: John
          minLength: 1
        familyName:
          maxLength: 20
          type: string
          example: Smith
          minLength: 1
        email:
          maxLength: 250
          type: string
          description: User must be registered in the planning portal
          example: john.smith@gmail.com
          minLength: 1
        contactNumber:
          maxLength: 10
          minLength: 8
          pattern: ^[0-9]+$
          type: string
    PersonBodyOut:
      required:
        - contactNumber
        - email
        - familyName
        - firstName
      type: object
      properties:
        firstName:
          maxLength: 20
          type: string
          example: John
          minLength: 1
        otherName:
          type: string
          example: Darren
        familyName:
          maxLength: 20
          type: string
          example: Smith
          minLength: 1
        email:
          maxLength: 250
          type: string
          description: User must be registered in the planning portal
          example: john.smith@gmail.com
          minLength: 1
        contactNumber:
          maxLength: 10
          minLength: 8
          pattern: ^[0-9]+$
          type: string
    DownloadableDocument:
      title: DownloadableDocument
      required:
        - documentName
        - documentType
        - documentURL
        - uploadedDateTime
      type: object
      properties:
        documentName:
          maxLength: 150
          type: string
          description: documentName has to be appended with file extension
          example: test.docx
          minLength: 1
        documentType:
          maxLength: 100
          type: string
          minLength: 1
        uploadedDateTime:
          type: string
          format: date-time
          minLength: 1
        documentURL:
          maxLength: 500
          type: string
          description: URL of the document to be downloaded
          minLength: 1
        documentSize:
          description: This indicates the file size of the document in bytes
          type: number
        updatedBy:
          type: string
          example: Council
    Title:
      title: Title
      type: string
      description: >-
        One of the below mentioned values must be selected for Title 1. Miss 2.
        Mr 3. Mrs 4. Ms
      example: Refer to description for values
    UpdatedBy:
      title: UpdatedBy
      type: object
      properties:
        person:
          $ref: '#/components/schemas/PersonBody'
    CreateCDC:
      required:
        - applicant
        - caseStatus
        - commonApplicationTypes
        - ownership
        - siteAddresses
      type: object
      properties:
        caseStatus:
          maxLength: 80
          type: string
          description: Status of the CDC case
          example: Submitted
          minLength: 1
        contributionDetails:
          type: array
          description: >-
            This is to track the infrastructure contribution's case details
            associated to the development.
          items:
            $ref: '#/components/schemas/contributionDetails'
        applicant:
          $ref: '#/components/schemas/Applicant'
        siteAddresses:
          type: array
          items:
            $ref: '#/components/schemas/Location'
        relatedCases:
          type: array
          items:
            $ref: '#/components/schemas/RelatedCases'
        ownership:
          title: Ownership
          type: string
          description: >-
            Who owns the development site? One of the below mentioned values
            must be selected for ownership 1. I am the sole owner of the
            development site 2. There are multiple owners of the development
            site and I am one of them 3. There are multiple owners of the
            development site and I am NOT one of them 4. A company, business,
            government entity or other similar body owns the development site
          example: Refer to description for values
          minLength: 1
        typeOfBuilder:
          type: string
          description: >-
            This is to track the type of builder undertaking the building work.
            1.Licensed Builder 2.Owner Builder 3.Not determined at this
            time(This information will be required prior to work commencing)
          example: Refer to description for values
        builderOrPrincipalContractorDetails:
          type: array
          description: This is to track the builder or Principal Contractor details.
          items:
            $ref: '#/components/schemas/BuilderOrPrincipalContractorDetails'
        ownerDetails:
          type: array
          description: Must include either a ownerPerson or ownerCompany
          items:
            $ref: '#/components/schemas/OwnerDetails'
        ownersConsentDeclaration:
          type: string
          description: >-
            I declare that I have shown this document, including all attached
            drawings, to the owner(s) of the land, and that I have obtained
            their consent to submit this application. This is visible when
            OwnersDetails visible except when we select developmentSiteOwner as
            I am the sole owner of the development site
        securityConditions:
          type: boolean
          description: >-
            Used to hold Are there any security or site conditions which may
            impact on the person undertaking the inspection or not .
        detailsOfSecurityConditions:
          type: string
          description: >-
            Need to hold the details when we select Are there any security or
            site conditions which may impact on the person undertaking the
            inspection is true.
        developerDetails:
          $ref: '#/components/schemas/developerDetails'
        payerInformation:
          type: object
          properties:
            payerType:
              $ref: '#/components/schemas/payerType'
            payerPerson:
              $ref: '#/components/schemas/payerPerson'
            payerCompany:
              $ref: '#/components/schemas/payerCompany'
        applicationType:
          type: string
          description: >-
            One of the below mentioned values must be selected for
            applicationType 1. Complying development certificate application 2.
            Modification to complying development certificate.
          example: Refer to description for values
        isPatternBookApplication:
          type: boolean
          description: >-
            This is used to track whether the application is proceeding under
            the NSW Housing Pattern Book fast-track assessment pathway.
        patternID:
          type: string
          maxLength: 32
          description: >-
            This is used to track the Pattern Book Identification Number as
            provided in the NSW Housing Design Verification Statement (Example -
            1111-SD01, 1234-MH01, 1432-TH04001). This is required when the
            application is flagged as a Pattern Book submission.
        isDuplicatePatternID:
          type: boolean
          description: >-
            This is used to track whether the same Pattern Book Identification
            Number has been previously used in any CDC application, in order to
            identify potential duplicates and enforce submission rules.
        determinedNotified:
          type: string
          description: Date when the MODIFICATION was determined.
          format: date
          example: '2020-12-02'
        caseSubmittedDate:
          type: string
          description: >-
            This is to track the date when the applicant submitted the
            application.
          format: date
        isPoolSpa40KlitersProposed:
          type: boolean
          description: >-
            This is to track if the pool is more than 40K in capacity. This
            question is applicable for the development type 'Swimming pools'.
        DANumber:
          maxLength: 20
          type: string
          description: Required if the applicationType is MODIFICATION
        proposedModificationDescription:
          maxLength: 1500
          type: string
          description: Required if the applicationType is MODIFICATION
        hasCDCOnlinecase:
          type: boolean
          description: >-
            This field is to capture the answer (Yes/No) for the question 'Was
            the CDC applied for via the NSW planning portal?' during the
            'modification to complying development certificate'
        CDCportalReferenceNumber:
          type: string
          description: >-
            This field is to capture the CDC's portal application number that's
            provided by the applicant for modification application.
        commonApplicationTypes:
          type: array
          items:
            $ref: '#/components/schemas/CommonApplicationType'
          description: >-
            This is to track the common Application types. Example values are 1.
            Advertising and signage 2. Alterations or additions to an existing
            building or structure 3. Change of use of land or a building or the
            classification of a building under the Building Code of Australia 4.
            Demolition 5. Erection of a new structure 6. Hours of operation and
            trading 7. Subdivision 8. Temporary building, structure or use
        subdivisionTypes:
          type: array
          items:
            type: string
          description: >-
            This is to track the appropriate subdivision types. This is
            applicable when 'Subdivision' is one of the common application
            type('commonApplicationTypes'). Example values are 1. Strata Title
            2. Community Title 3. Torrens Title 4. Stratum Title
        numOfExistingLots:
          type: integer
          description: >-
            This is to track the number of existing lots. This is applicable
            when 'Subdivision' is one of the common application
            types('commonApplicationTypes').
        numOfProposedLots:
          type: integer
          description: >-
            This is to track the number of proposed lots. This is applicable
            when 'Subdivision' is one of the common application
            types('commonApplicationTypes').
        developmentTypes:
          type: array
          items:
            $ref: '#/components/schemas/DevelopmentType'
        descriptionOfWork:
          type: string
          description: >-
            Used to hold the a detailed description of the development.For
            example Demolition of existing buildings, construction of a single
            storey dwelling, swimming pool and related landscaping.
        isPreviousDevelopmentConsentSubmitted:
          type: boolean
          description: >-
            This is to track if the previous development consent (DA/CDC)
            application been submitted for building work. This is applicable
            when the common application type is Subdivision.
        isPreviousApplicationSubmittedViaPortal:
          type: boolean
          description: >-
            This is to track if the previous development consent (DA/CDC)
            application applied for via the NSW Planning Portal. This is
            applicable when the common application type is Subdivision.
        previousDevelopmentConsentCaseID:
          type: string
          description: >-
            This is to track the NSW Planning Portal application number (CDC or
            PAN). This is applicable when the common application type is
            Subdivision and when the  isPreviousDevelopmentConsentSubmitted is
            true.
        isDevelopmentExemptfromDBPAct:
          type: boolean
          description: >-
            This is an obsolete attribute and will not be entered by the
            applicant anymore. Tracks if the the development is exempted from
            Design and Building Practitioners Act 2020. This is applicable for
            any development type under group term 'Residential Accommodation' in
            conjunction with the common application type value 'Alterations or
            additions to an existing building or structure'.
        developmentExemptReason:
          maxLength: 512
          type: string
          description: >-
            This is an obsolete attribute and will not be entered by the
            applicant anymore. This is to track the reason as to why the
            development is exempted from Design and Building Practitioners Act
            2020. Applicable when 'Yes' is chosen for the question 'Is the
            development exempt from Design and Building Practitioners Act 2020
            ?' (isDevelopmentExemptfromDBPAct). The reason provided when 'Other'
            value is chosen by the user will be captured in this tag itself with
            a delimiter. ( e.g - Other-Reasonvalue) 1. Labour and materials
            value less than AUD $5000 2. Under homebuilder grant 3. Under a
            council order 4. Under development control order 5. Maintaining fire
            safety system 6. Exempt from BCA under clause 164B, 187 or 188 7.
            Maintaining a building component of a system 8. Exempt under
            environmental planning 9. Fit out only 10. Other
        proposed24HrWork:
          $ref: '#/components/schemas/ScheduleWorkDay'
        isNaturalDisaster:
          type: string
          description: >-
            Used to hold whether the application the direct result of a matter
            declared by the government to be an emergency and/or a natural
            disaster  or not .
        estimatedAreaOfAsbestosMaterial:
          type: string
          description: >-
            Used to Estimate of the area (if any) in square meters of bonded
            asbestos material or friable asbestos material that will be
            disturbed, repaired or removed in the carrying out of the
            development (m2)
          format: decimal
          minLength: 1
        estimatedCost:
          type: string
          description: This is to track the estimated development cost, including GST.
          format: decimal
        lotType:
          type: string
          description: >-
            One of the below mentioned values must be selected for lotType 1.
            Corner lot 2. Parallel road lot 3. Battle-axe lot 4. Standard lot
          example: Refer to description for values
          minLength: 1
        haveMoreBasix:
          type: boolean
          description: >-
            This is to track if the applicant has one or more BASIX certificates
            when applicable.
        basixCertificateNumber:
          type: array
          items:
            $ref: '#/components/schemas/BasixCertificateNumber'
        referencePlanningCertificateNumber:
          type: string
          description: >-
            Please enter 10.7 certificate number related to this
            application."This is mandatory when Was the 10.7 certificate applied
            for via the NSW Planning Portal? is false"
        certificate10.7Obtained:
          type: boolean
          description: Have you already obtained a 10.7 certificate?
        has10.7Onlinecase:
          type: boolean
          description: >-
            This field is mandatory when "certificate10.7Obtained" this is true.
            Was the 10.7 certificate applied for via the NSW Planning Portal?
        portalReferenceNumber:
          maxLength: 1500
          type: string
          description: >-
            Please provide portal reference number. and this field is mandatory
            when 'has10.7Onlinecase' is true.
        registeredCertifierOrgDetails:
          $ref: '#/components/schemas/registeredCertifierOrgDetails'
        principalCertifierOrgDetails:
          $ref: '#/components/schemas/principalCertifierOrgDetails'
        certifierOrgDetails:
          type: object
          properties:
            certifierOrgName:
              type: string
            tradingName:
              type: string
            ABN:
              type: string
            ACN:
              type: string
            certifierOrgAddress:
              type: string
          description: >-
            This contains Nominated Certifier details. This is obsolete and is
            replaced by the relevant registeredCertifierOrgDetails &
            principalCertifierOrgDetails object.
        isS68LGActApprovalReq:
          type: boolean
          description: Is approval under s68 of the Local Government Act 1993 required?
        isS68Applied:
          type: boolean
          description: >-
            When 'IsS68LGActApprovalReq' is true this field is mandatory. Have
            you already applied for approval under s68 of the Local Government
            Act?
        applyS68Approval:
          type: boolean
          description: >-
            Would you like to apply for approval under s68 of the Local
            Government Act? Applicable when -Have you already applied for
            approval under s68 of the Local Government Act? is "false" and
            address falls under same CouncilForS68
        startPlanningCertificateApplication:
          type: boolean
          description: >-
            Would you like to start a Planning Certificate 10.7 application?.
            Applicable when Have you already obtained a 10.7 certificate? is
            "false" and address falls under same council For PC107. it will have
            true or false as values
        hasOnlines68Case:
          type: boolean
          description: >-
            When 'IsS68Applied' is true this field is mandatory. Was the s68
            certificate applied for via the NSW Planning Portal?
        s68ReferenceNumber:
          maxLength: 1500
          type: string
          description: >-
            Please provide portal reference number. and this field is mandatory
            when 'HasOnlines68Case' is true.
        s68RelatedRefNo:
          type: string
          description: >-
            Please enter s68 reference number related to this application. and
            this field is mandatory when 'HasOnlines68Case' is false.
        isResend:
          type: boolean
          description: >-
            This is to track if application details are resent. True indicates a
            retriggered event.
        documents:
          type: array
          items:
            $ref: '#/components/schemas/DownloadableDocument'
        buildingPractitioner:
          type: array
          description: >-
            This is an obsolete attribute and will not be entered by the
            applicant anymore. List of Building Practitioner. Providing the
            details of the Registered Practitioner for certain developments will
            become visible in the future. This requirement will apply where all
            or part of the development falls within Class 2 of the Building Code
            of Australia.
          items:
            $ref: '#/components/schemas/buildingpractitioner'
        designpractitioner:
          type: array
          description: >-
            This is an obsolete attribute and will not be entered by the
            applicant anymore. List of engineers. Providing the details of the
            Registered Practitioner for certain developments. This requirement
            will apply where all or part of the development falls within Class 2
            of the Building Code of Australia.
          items:
            $ref: '#/components/schemas/designpractitioner'
        principaldesignpractitioner:
          type: array
          description: >-
            This is an obsolete attribute and will not be entered by the
            applicant anymore. List of Designer. Providing the details of the
            Registered Practitioner for certain developments will become visible
            in the future. This requirement will apply where all or part of the
            development falls within Class 2 of the Building Code of Australia.
          items:
            $ref: '#/components/schemas/principaldesignpractitioner'
        employeeDeclaration:
          type: boolean
          description: >-
            Are you an employee / Councillor or relative of an employee /
            Councillor within the same local government area as the proposed
            development?
        natureOfRelationship:
          type: string
          description: >-
            Nature of relationship. One of the below mentioned values must be
            selected for natureOfRelationship 1. I am an employee 2. I am a
            councillor 3. I am a relative of, or relationship with, employee or
            Councillor
          example: Refer to description for values
        buildingWorkCommencementDt:
          type: string
          description: >-
            It will hold the date of the Building work commencement. This will
            be passed when the applicant performs IntentionToCommenceWork local
            action
          format: date
        isExistingCemetery:
          type: boolean
          description: >-
            This is to track if the application is for an existing cemetery.
            This question is applicable and mandatory when the development type
            is Cemetery.
        isStateHeritageRegistered:
          type: boolean
          description: >-
            This is to track if the development to be carried out on land that
            is listed on the State Heritage Register under the Heritage Act
            1977. This question is applicable and mandatory when the development
            type is Cemetery.
        isSubjectToInterimHeritageOrder:
          type: boolean
          description: >-
            This is to track if the development to be carried out on land that
            is subject to an interim heritage order. This question is applicable
            and mandatory when the development type is Cemetery.
        isEnvironmentalHeritage:
          type: boolean
          description: >-
            This is to track if the development to be carried out on land that
            is identified as an item of environmental heritage. This question is
            applicable and mandatory when the development type is Cemetery.
        isActiveCemetery:
          type: boolean
          description: >-
            This is to track if the application is for an active cemetery (i.e.,
            accepting new burials). This question is applicable and mandatory
            when the development type is Cemetery.
        declarations:
          type: array
          description: Declarations for CDC
          items:
            $ref: '#/components/schemas/Declarations'
    UpdateCDC:
      required:
        - applicant
        - caseStatus
        - commonApplicationTypes
        - ownership
        - siteAddresses
      type: object
      properties:
        caseStatus:
          maxLength: 80
          type: string
          description: Status of the CDC case
          example: Submitted
          minLength: 1
        contributionDetails:
          type: array
          description: >-
            This is to track the infrastructure contribution's case details
            associated to the development.
          items:
            $ref: '#/components/schemas/contributionDetails'
        applicant:
          $ref: '#/components/schemas/Applicant'
        siteAddresses:
          type: array
          items:
            $ref: '#/components/schemas/Location'
        relatedCases:
          type: array
          items:
            $ref: '#/components/schemas/RelatedCases'
        ownership:
          title: Ownership
          type: string
          description: >-
            Who owns the development site?. One of the below mentioned values
            must be selected for ownership 1. I am the sole owner of the
            development site 2. There are multiple owners of the development
            site and I am one of them 3. There are multiple owners of the
            development site and I am NOT one of them 4. A company, business,
            government entity or other similar body owns the development site
          example: Refer to description for values
          minLength: 1
        typeOfBuilder:
          type: string
          description: >-
            This is to track the type of builder undertaking the building work.
            1.Licensed Builder 2.Owner Builder 3.Not determined at this
            time(This information will be required prior to work commencing)
          example: Refer to description for values
        builderOrPrincipalContractorDetails:
          type: array
          description: This is to track the builder or Principal Contractor details.
          items:
            $ref: '#/components/schemas/BuilderOrPrincipalContractorDetails'
        ownerDetails:
          type: array
          description: Must include either a ownerPerson or ownerCompany
          items:
            $ref: '#/components/schemas/OwnerDetails'
        ownersConsentDeclaration:
          type: string
          description: >-
            I declare that I have shown this document, including all attached
            drawings, to the owner(s) of the land, and that I have obtained
            their consent to submit this application. This is visible when
            OwnersDetails visible except when we select developmentSiteOwner as
            I am the sole owner of the development site
        securityConditions:
          type: boolean
          description: >-
            Used to hold Are there any security or site conditions which may
            impact on the person undertaking the inspection or not .
        detailsOfSecurityConditions:
          type: string
          description: >-
            Need to hold the details when we select Are there any security or
            site conditions which may impact on the person undertaking the
            inspection is true.
        developerDetails:
          $ref: '#/components/schemas/developerDetails'
        payerInformation:
          type: object
          properties:
            payerType:
              $ref: '#/components/schemas/payerType'
            payerPerson:
              $ref: '#/components/schemas/payerPerson'
            payerCompany:
              $ref: '#/components/schemas/payerCompany'
        applicationType:
          type: string
          description: >-
            It infers the application type. One of the below mentioned values
            must be selected for applicationType 1. Complying development
            certificate application 2. Modification to complying development
            certificate.
          example: Refer to description for values
        isPatternBookApplication:
          type: boolean
          description: >-
            This is to track if the application is Pattern Book based
            application and this field is mandatory.
        patternID:
          type: string
          maxLength: 32
          description: This is to track Pattern Book Identification number when applicable.
        isDuplicatePatternID:
          type: boolean
          description: >-
            This is to track if the Pattern Book Identification number is
            duplicate, which was used in any other CDC application before when
            applicable.
        determinedNotified:
          type: string
          description: Date when the MODIFICATION was determined.
          format: date
          example: '2020-12-02'
        DANumber:
          maxLength: 20
          type: string
          description: Required if the applicationType is MODIFICATION
        proposedModificationDescription:
          maxLength: 1500
          type: string
          description: Required if the applicationType is MODIFICATION
        hasCDCOnlinecase:
          type: boolean
          description: >-
            This field is to capture the answer (Yes/No) for the question 'Was
            the CDC applied for via the NSW planning portal?' during the
            'modification to complying development certificate'
        caseSubmittedDate:
          type: string
          description: >-
            This is to track the date when the applicant submitted the
            application.
          format: date
        isPoolSpa40KlitersProposed:
          type: boolean
          description: >-
            This is to track if the pool is more than 40K in capacity. This
            question is applicable for the development type 'Swimming pools'.
        CDCportalReferenceNumber:
          type: string
          description: >-
            This field is to capture the CDC's portal application number that's
            provided by the applicant for modification application.
        commonApplicationTypes:
          type: array
          items:
            $ref: '#/components/schemas/CommonApplicationType'
          description: >-
            This is to track the common Application types. Example values are 1.
            Advertising and signage 2. Alterations or additions to an existing
            building or structure 3. Change of use of land or a building or the
            classification of a building under the Building Code of Australia 4.
            Demolition 5. Erection of a new structure 6. Hours of operation and
            trading 7. Subdivision 8. Temporary building, structure or use
        subdivisionTypes:
          type: array
          items:
            type: string
          description: >-
            This is to track the appropriate subdivision types. This is
            applicable when 'Subdivision' is one of the common application
            type('commonApplicationTypes'). Example values are 1. Strata Title
            2. Community Title 3. Torrens Title 4. Stratum Title
        numOfExistingLots:
          type: integer
          description: >-
            This is to track the number of existing lots. This is applicable
            when 'Subdivision' is one of the common application
            types('commonApplicationTypes').
        numOfProposedLots:
          type: integer
          description: >-
            This is to track the number of proposed lots. This is applicable
            when 'Subdivision' is one of the common application
            types('commonApplicationTypes').
        developmentTypes:
          type: array
          items:
            $ref: '#/components/schemas/DevelopmentType'
        descriptionOfWork:
          type: string
          description: >-
            Used to hold the a detailed description of the development.For
            example Demolition of existing buildings, construction of a single
            storey dwelling, swimming pool and related landscaping.
        isPreviousDevelopmentConsentSubmitted:
          type: boolean
          description: >-
            This is to track if the previous development consent (DA/CDC)
            application been submitted for building work. This is applicable
            when the common application type is Subdivision.
        isPreviousApplicationSubmittedViaPortal:
          type: boolean
          description: >-
            This is to track if the previous development consent (DA/CDC)
            application applied for via the NSW Planning Portal. This is
            applicable when the common application type is Subdivision.
        previousDevelopmentConsentCaseID:
          type: string
          description: >-
            This is to track the NSW Planning Portal application number (CDC or
            PAN). This is applicable when the common application type is
            Subdivision and when the  isPreviousDevelopmentConsentSubmitted is
            true.
        isDevelopmentExemptfromDBPAct:
          type: boolean
          description: >-
            This is an obsolete attribute and will not be entered by the
            applicant anymore. Tracks if the the development is exempted from
            Design and Building Practitioners Act 2020.
        developmentExemptReason:
          maxLength: 512
          type: string
          description: >-
            This is an obsolete attribute and will not be entered by the
            applicant anymore. This is to track the reason as to why the
            development is exempted from Design and Building Practitioners Act
            2020. Applicable when 'Yes' is chosen for the question 'Is the
            development exempt from Design and Building Practitioners Act 2020
            ?' (isDevelopmentExemptfromDBPAct). The reason provided when 'Other'
            value is chosen by the user will be captured in this tag itself with
            a delimiter. ( e.g - Other-Reasonvalue). 1. Labour and materials
            value less than AUD $5000 2. Under homebuilder grant 3. Under a
            council order 4. Under development control order 5. Maintaining fire
            safety system 6. Exempt from BCA under clause 164B, 187 or 188 7.
            Maintaining a building component of a system 8. Exempt under
            environmental planning 9. Fit out only 10. Other
        proposed24HrWork:
          $ref: '#/components/schemas/ScheduleWorkDay'
        isNaturalDisaster:
          type: string
          description: >-
            Used to hold whether the application the direct result of a matter
            declared by the government to be an emergency and/or a natural
            disaster  or not .
        estimatedAreaOfAsbestosMaterial:
          type: string
          description: >-
            Used to Estimate of the area (if any) in square meters of bonded
            asbestos material or friable asbestos material that will be
            disturbed, repaired or removed in the carrying out of the
            development (m2)
          format: decimal
          minLength: 1
        estimatedCost:
          type: string
          description: This is to track the the estimated development cost, including GST.
          format: decimal
        lotType:
          type: string
          description: >-
            It infers the lot type. One of the below mentioned values must be
            selected for lotType 1. Corner lot 2. Parallel road lot 3.
            Battle-axe lot 4. Standard lot
          example: Refer to description for values
          minLength: 1
        haveMoreBasix:
          type: boolean
          description: >-
            This is to track if the applicant has one or more BASIX certificates
            when applicable.
        basixCertificateNumber:
          type: array
          items:
            $ref: '#/components/schemas/BasixCertificateNumber'
        referencePlanningCertificateNumber:
          type: string
          description: >-
            Please enter 10.7 certificate number related to this
            application."This is mandatory when Was the 10.7 certificate applied
            for via the NSW Planning Portal? is false"
        certificate10.7Obtained:
          type: boolean
          description: Have you already obtained a 10.7 certificate?
        has10.7Onlinecase:
          type: boolean
          description: >-
            This field is mandatory when "certificate10.7Obtained" this is true.
            Was the 10.7 certificate applied for via the NSW Planning Portal?
        portalReferenceNumber:
          maxLength: 1500
          type: string
          description: >-
            Please provide portal reference number. and this field is mandatory
            when 'has10.7Onlinecase' is true.
        registeredCertifierOrgDetails:
          $ref: '#/components/schemas/registeredCertifierOrgDetails'
        principalCertifierOrgDetails:
          $ref: '#/components/schemas/principalCertifierOrgDetails'
        certifierOrgDetails:
          type: object
          properties:
            certifierOrgName:
              type: string
            tradingName:
              type: string
            ABN:
              type: string
            ACN:
              type: string
            certifierOrgAddress:
              type: string
          description: >-
            This contains Nominated Certifier details. This is obsolete and is
            replaced by the relevant registeredCertifierOrgDetails &
            principalCertifierOrgDetails object.
        isS68LGActApprovalReq:
          type: boolean
          description: Is approval under s68 of the Local Government Act 1993 required?
        isS68Applied:
          type: boolean
          description: >-
            When 'IsS68LGActApprovalReq' is true this field is mandatory. Have
            you already applied for approval under s68 of the Local Government
            Act?
        applyS68Approval:
          type: boolean
          description: >-
            Would you like to apply for approval under s68 of the Local
            Government Act? Applicable when -Have you already applied for
            approval under s68 of the Local Government Act? is "false" and
            address falls under same CouncilForS68
        startPlanningCertificateApplication:
          type: boolean
          description: >-
            Would you like to start a Planning Certificate 10.7 application?.
            Applicable when Have you already obtained a 10.7 certificate? is
            "false" and address falls under same council For PC107. value will
            be either true or false
        hasOnlines68Case:
          type: boolean
          description: >-
            When 'IsS68Applied' is true this field is mandatory. Was the s68
            certificate applied for via the NSW Planning Portal?
        s68ReferenceNumber:
          maxLength: 1500
          type: string
          description: >-
            Please provide portal reference number. and this field is mandatory
            when 'HasOnlines68Case' is true.
        s68RelatedRefNo:
          type: string
          description: >-
            Please enter s68 reference number related to this application. and
            this field is mandatory when 'HasOnlines68Case' is false.
        documents:
          type: array
          description: This block will be sending the full set of documents.
          items:
            $ref: '#/components/schemas/DownloadableDocument'
        deltaDocuments:
          type: array
          description: >-
            This block will be sending the delta documents uploaded or updated
            as part of update operation.
          items:
            $ref: '#/components/schemas/DownloadableDocument'
        buildingPractitioner:
          type: array
          description: >-
            This is an obsolete attribute and will not be entered by the
            applicant anymore. List of Building Practitioner. Providing the
            details of the Registered Practitioner for certain developments will
            become visible in the future. This requirement will apply where all
            or part of the development falls within Class 2 of the Building Code
            of Australia.
          items:
            $ref: '#/components/schemas/buildingpractitioner'
        designpractitioner:
          type: array
          description: >-
            This is an obsolete attribute and will not be entered by the
            applicant anymore. List of engineers. Providing the details of the
            Registered Practitioner for certain developments. This requirement
            will apply where all or part of the development falls within Class 2
            of the Building Code of Australia.
          items:
            $ref: '#/components/schemas/designpractitioner'
        principaldesignpractitioner:
          type: array
          description: >-
            This is an obsolete attribute and will not be entered by the
            applicant anymore. List of Designer. Providing the details of the
            Registered Practitioner for certain developments will become visible
            in the future. This requirement will apply where all or part of the
            development falls within Class 2 of the Building Code of Australia.
          items:
            $ref: '#/components/schemas/principaldesignpractitioner'
        employeeDeclaration:
          type: boolean
          description: >-
            Are you an employee / Councillor or relative of an employee /
            Councillor within the same local government area as the proposed
            development?
        natureOfRelationship:
          type: string
          description: >-
            Nature of relationship. One of the below mentioned values must be
            selected for natureOfRelationship 1. I am an employee 2. I am a
            councillor 3. I am a relative of, or relationship with, employee or
            Councillor
          example: Refer to description for values
        buildingWorkCommencementDt:
          type: string
          description: >-
            It will hold the date of the Building work commencement. This will
            be passed when the applicant performs IntentionToCommenceWork local
            action
          format: date
        isExistingCemetery:
          type: boolean
          description: >-
            This is to track if the application is for an existing cemetery.
            This question is applicable and mandatory when the development type
            is Cemetery.
        isStateHeritageRegistered:
          type: boolean
          description: >-
            This is to track if the development to be carried out on land that
            is listed on the State Heritage Register under the Heritage Act
            1977. This question is applicable and mandatory when the development
            type is Cemetery.
        isSubjectToInterimHeritageOrder:
          type: boolean
          description: >-
            This is to track if the development to be carried out on land that
            is subject to an interim heritage order. This question is applicable
            and mandatory when the development type is Cemetery.
        isEnvironmentalHeritage:
          type: boolean
          description: >-
            This is to track if the development to be carried out on land that
            is identified as an item of environmental heritage. This question is
            applicable and mandatory when the development type is Cemetery.
        isActiveCemetery:
          type: boolean
          description: >-
            This is to track if the application is for an active cemetery (i.e.,
            accepting new burials). This question is applicable and mandatory
            when the development type is Cemetery.
        declarations:
          type: array
          description: Declarations for CDC
          items:
            $ref: '#/components/schemas/Declarations'
    OwnerBuilderdetails:
      title: OwnerBuilderdetails
      type: object
      properties:
        title:
          $ref: '#/components/schemas/Title'
      description: applicable when isMultipleOwners is Yes
    OwnerDetails:
      type: object
      properties:
        isOwnerABuilder:
          type: boolean
          description: >-
            Required if Ownership is selected as 'There are one or more owners
            of the development site and I am NOT one of them' OR 'There are
            multiple owners of the development site and I am one of them'
        title:
          $ref: '#/components/schemas/Title'
        ownerPerson:
          $ref: '#/components/schemas/PersonBodyOut'
        ownerCompany:
          $ref: '#/components/schemas/ownerCompany'
        address:
          maxLength: 250
          type: string
          description: Owner's Address
          example: 19-33 Elizabeth Street, Narrandera, 2700
      description: Must include either a ownerPerson or ownerCompany
    ownerPerson:
      title: ownerPerson
      type: object
      properties:
        isOwnerABuilder:
          type: boolean
          description: >-
            Required if Ownership is selected as 'There are one or more owners
            of the development site and I am NOT one of them' OR 'There are
            multiple owners of the development site and I am one of them'
        title:
          $ref: '#/components/schemas/Title'
        applicantPerson:
          $ref: '#/components/schemas/Person'
        address:
          maxLength: 250
          type: string
          description: Required as part of Owner details
      description: >-
        Required if Ownership is NOT selected as 'I am the sole owner of the
        development site' and 'A company, business, government entity or other
        similar body owns the development site'
    registeredCertifierOrgDetails:
      type: object
      description: >-
        This indicates the organisation details of the nominated Registered
        certifier.
      properties:
        ABN:
          maxLength: 14
          type: string
          description: >-
            This is to track the Australian Business Number (ABN) which is a
            unique 11 digit identifier issued to all entities registered in the
            Australian Business Register (ABR).
          minLength: 1
        ACN:
          maxLength: 11
          type: string
          description: This is to track the Australian Company Number (ACN).
        companyName:
          type: string
          description: This is to track the company name.
          minLength: 1
        tradingName:
          type: string
          description: This is to track the trading name.
        address:
          type: string
          description: This is to track the company's address.
          minLength: 1
        email:
          maxLength: 250
          type: string
          description: This is to track the email address.
          format: email
          minLength: 1
    principalCertifierOrgDetails:
      type: object
      description: >-
        This indicates the organisation details of the nominated Principal
        certifier.
      properties:
        ABN:
          maxLength: 14
          type: string
          description: >-
            This is to track the Australian Business Number (ABN) which is a
            unique 11 digit identifier issued to all entities registered in the
            Australian Business Register (ABR)
          minLength: 1
        ACN:
          maxLength: 11
          type: string
          description: This is to track the Australian Company Number (ACN).
        companyName:
          type: string
          description: This is to track the company name.
          minLength: 1
        tradingName:
          type: string
          description: This is to track the trading name.
        address:
          type: string
          description: This is to track the company's address.
          minLength: 1
        email:
          maxLength: 250
          type: string
          description: This is to track the email address.
          format: email
          minLength: 1
    ownerCompany:
      title: ownerCompany
      type: object
      properties:
        companyName:
          type: string
          description: Company Name
        ABN:
          maxLength: 14
          type: string
          description: it should be 11 digit number
      description: >-
        If Ownership selected as 'A company, business, government entity or
        other similar body owns the development site'
    Certifier:
      title: Certifier
      type: object
      properties:
        accreditionNumber:
          maxLength: 50
          type: string
          description: >-
            BPB accreditation number,Pre-populated with logged in user and
            EDITABLE
        address:
          $ref: '#/components/schemas/Address'
    TradeDetails:
      title: TradeDetails
      type: object
      properties:
        ABN:
          maxLength: 14
          type: string
          description: ABN number
        ACN:
          maxLength: 11
          type: string
          description: ACN number
        LegalName:
          maxLength: 250
          type: string
          description: Legal full name
        TradingName:
          maxLength: 250
          type: string
          description: Trader full name
    Location:
      title: Location
      required:
        - address
        - lga
      type: object
      properties:
        address:
          maxLength: 250
          type: string
          description: Address where the development is happening
          example: 19-33 Elizabeth Street, Narrandera, 2700
          minLength: 1
        addressDetail:
          $ref: '#/components/schemas/AddressDetail'
        lotList:
          type: array
          items:
            $ref: '#/components/schemas/LotSectionPlan'
        lga:
          maxLength: 30
          type: string
          description: Local Government Area under which this case falls
          example: PENRITH
          minLength: 1
        isPrimary:
          type: boolean
          description: The primary address if multiple
    WorkDay:
      type: object
      properties:
        proposed24HrWork:
          type: boolean
          description: Either 24 hour work of specify start and end hours
        startWorkingHours:
          maxLength: 15
          type: string
          description: Applicable when proposed24HrWork is 'false'
          example: 09:30 AM
        endWorkingHours:
          maxLength: 15
          type: string
          description: Applicable when proposed24HrWork is 'false'
          example: 05:30 PM
      description: >-
        This is to track the work days. Applicable when 'isMonWorkDay' or
        'isTueWorkDay' or 'isWedWorkDay' or 'isThuWorkDay' or 'isFriWorkDay' or
        'isSatWorkDay' or 'isSunWorkDay' is 'true'
    ScheduleWorkDay:
      type: object
      description: This is to track the proposed hours of work when applicable.
      properties:
        isMonWorkDay:
          type: boolean
        MonWorkDay:
          $ref: '#/components/schemas/WorkDay'
        isTueWorkDay:
          type: boolean
        TueWorkDay:
          $ref: '#/components/schemas/WorkDay'
        isWedWorkDay:
          type: boolean
        WedWorkDay:
          $ref: '#/components/schemas/WorkDay'
        isThuWorkDay:
          type: boolean
        ThuWorkDay:
          $ref: '#/components/schemas/WorkDay'
        isFriWorkDay:
          type: boolean
        FriWorkDay:
          $ref: '#/components/schemas/WorkDay'
        isSatWorkDay:
          type: boolean
        SatWorkDay:
          $ref: '#/components/schemas/WorkDay'
        isSunWorkDay:
          type: boolean
        SunWorkDay:
          $ref: '#/components/schemas/WorkDay'
    RelatedCases:
      title: RelatedCases
      required:
        - relatedCase
      type: object
      properties:
        relatedCase:
          type: string
          description: Any related case ID
          minLength: 1
    AddressDetail:
      required:
        - latitude
        - longitude
        - postCode
        - state
        - streetName
        - suburb
      type: object
      properties:
        complexUnitType:
          type: string
        complexLevelType:
          type: string
        complexLevelNumber:
          type: string
        complexUnitIdentifier:
          type: string
        streetNumber1:
          type: string
        streetNumber2:
          type: string
        streetName:
          type: string
          minLength: 1
        streetSuffix:
          type: string
        streetType:
          type: string
        suburb:
          type: string
          minLength: 1
        latitude:
          type: number
        longitude:
          type: number
        wkid:
          type: string
        cadastralID:
          type: string
        gurasID:
          type: string
        primarySecondary:
          type: string
        state:
          type: string
          minLength: 1
        postCode:
          type: number
    LotSectionPlan:
      required:
        - lotsectionplan
      type: object
      properties:
        lotsectionplan:
          type: string
          example: 1/-/SPXXXXX
          minLength: 1
    BasixCertificateNumber:
      title: BasixCertificateNumber
      type: object
      properties:
        certificateNumber:
          maxLength: 20
          type: string
      description: Basix Certificate Number
    CertifierOrgDetails:
      title: CertifierOrgDetails
      type: object
      properties:
        address:
          maxLength: 250
          type: string
    Declarations:
      title: declarations
      type: string
      description: >-
        This is required and One of the below mentioned values must be selected
        for Declarations 1. I declare that all the information in my application
        and accompanying documents is, to the best of my knowledge, true and
        correct. 2. I understand that the application and the accompanying
        information will be provided to the appropriate consent authority for
        the purposes of the assessment and determination of this application,
        and may be provided to other State agencies. 3. I understand that if
        incomplete, the consent authority may request more information, which
        will result in delays to the application. 4. The information and
        materials provided may be used for notification and advertising
        purposes, and may be made available to the public for inspection. 5. I
        acknowledge that copies of this application and supporting documentation
        may be provided to interested persons in accordance with the Government
        Information (Public Access) 2009 (NSW) (GIPA Act). 6. I have read and
        agree to the collection and use of my personal information as outlined
        in the Privacy Notice. 7. I agree to the appropriately delegated
        assessment officers attending the site for the purpose of inspection
      example: Refer to description for values
    WithdrawCDC:
      title: WithdrawCDC
      required:
        - caseStatus
        - updatedBy
      type: object
      properties:
        caseStatus:
          maxLength: 80
          type: string
          description: Status of the CDC case
          example: Submitted
          minLength: 1
        withdrawalDate:
          type: string
          description: Date on which case is withdrawn
          format: date
        updatedBy:
          $ref: '#/components/schemas/UpdatedBy'
    changeReason:
      title: changeReason
      type: string
      description: >-
        select the change reason options from below list. One of the below
        mentioned values must be selected for changeReason 1. Change of property
        developer 2. Change of head building contractor 3. Using internal
        company designers/engineers 4. Using external specialist
        designers/engineers 5. Other
      example: Refer to description for values
    Address:
      title: Address
      type: object
      properties:
        FullAddress:
          type: string
          description: AutoComplete field with Address feth based on key in address
        contactNumber:
          maxLength: 10
          minLength: 8
          pattern: ^[0-9]+$
          type: string
        CompanyName:
          maxLength: 20
          type: string
          description: optional
        Title:
          $ref: '#/components/schemas/Title'
        PersonalInformation:
          $ref: '#/components/schemas/UpdatedBy'
    ApplicationType:
      title: ApplicationType
      type: string
      description: >-
        One of the below mentioned values must be selected for ApplicationType
        1. Complying development certificate application 2. Modification to
        complying development certificate
      example: Refer to description for values
    consentList:
      title: ConsentList
      type: string
      description: >-
        At concents has to be agreed for CDC case to progress for
        Registraion.One of the below mentioned values must be selected for
        consentList 1. I have read and agree to the collection and use of my
        personal information as outlined in the Privacy Notice. 2. I understand
        that if incomplete, the Council may request more information 3. I
        understand that a payment needs to be made for the registration to be
        submitted to the Council.
      example: Refer to description for values
    DevelopmentSiteOwner:
      title: DevelopmentSiteOwner
      type: string
      description: >-
        One of the below mentioned values must be selected for
        DevelopmentSiteOwner 1. APPLICANT_OWNED 2. MULTI_PLUS_APPLICANT 3.
        MULTI_EXCL_APPLICANT 4. COMPANY_OWNED
      example: Refer to description for values
    DevelopmentType:
      title: DevelopmentType
      type: object
      properties:
        developmentType:
          type: string
          example: Dwelling house
    LotType:
      title: LotType
      type: string
      description: >-
        One of the below mentioned values must be selected for LotType 1. Corner
        lot 2. Parallel road lot 3. Battle-axe lot 4. Standard lot
      example: Refer to description for values
    TypeOfEngineer:
      title: TypeOfEngineer
      type: string
      description: >-
        One of the below mentioned values must be selected for TypeOfEngineer 1.
        Acoustic 2. Civil 3. Electrical 4. FireSystem 5. Hydraulic 6. lift 7.
        Mechanical 8. Structural
      example: Refer to description for values
    ProvideAddInfo:
      title: ProvideAddInfo
      required:
        - caseStatus
        - responseDate
      type: object
      properties:
        caseStatus:
          type: string
          description: Status of the request for additional information
          example: Complete
          minLength: 1
        childCaseID:
          type: string
          description: An AI case id for RFI
          example: AI-XXXX
        primaryCaseID:
          type: string
          description: Used to hold CDC case ID.
          example: CDC-XXXX
        responseDate:
          type: string
          description: Date and time of response
          format: date
          minLength: 1
        responseDetails:
          type: string
          description: Additional information description provided by the applicant
        Documents:
          type: array
          items:
            $ref: '#/components/schemas/DownloadableDocument'
        updatedBy:
          $ref: '#/components/schemas/UpdatedBy'
    payerType:
      title: PayerType
      type: string
      description: >-
        It is a mandatory field and it infers type of payer. User have to select
        the option that is applicable. One of the below mentioned values must be
        selected for determinedAuthority 1. Individual 2. A Company, Business,
        Government entity or other similar body
      example: Refer to description for values
    payerPerson:
      title: payerPerson
      type: object
      properties:
        title:
          $ref: '#/components/schemas/Title'
        payerInfo:
          $ref: '#/components/schemas/PersonDetails'
        billingAddress:
          type: string
          description: Required and If Payer Type selected as 'Individual'. Billing address
      description: Required if Payer Type selected as 'Individual'.
    payerCompany:
      title: payerCompany
      required:
        - email
        - mailingAddress
      type: object
      properties:
        applicantCompany:
          $ref: '#/components/schemas/applicantCompany'
        mailingAddress:
          type: string
          description: >-
            This is a mandatory field and this infers mailing address of the
            Payer
          minLength: 1
        email:
          type: string
          description: This is a mandatory field and this infers email ID of the Payer
          minLength: 1
      description: >-
        Required if Payer Type selected as 'A Company, Business, Government
        entity or other similar body'.
    applicantCompany:
      title: applicantCompany
      type: object
      properties:
        companyName:
          maxLength: 256
          type: string
          description: Required and refers to the company name
        ABN:
          maxLength: 11
          type: string
          description: >-
            The Australian Business Number (ABN) is a unique 11 digit identifier
            issued to all entities registered in the Australian Business
            Register (ABR)
        ACN:
          maxLength: 9
          type: string
          description: The Australian Company Number (ACN) is a nine digit number
        tradingName:
          maxLength: 256
          type: string
          description: Name of the trading
      description: If Apply on Behalf of Company is selected as 'Yes'
    developerDetails:
      type: object
      properties:
        ABN:
          maxLength: 14
          type: string
          description: ABN number
        ACN:
          maxLength: 11
          type: string
          description: ACN number
        companyName:
          maxLength: 250
          type: string
          description: company name.
        tradingName:
          maxLength: 250
          type: string
          description: Trader full name
        address:
          type: string
          description: Used to hold the developer address.
        emailAddress:
          maxLength: 250
          type: string
          description: User must be registered in the planning portal
          example: john.smith@gmail.com
      description: Used to hold the developer details.
    buildingpractitioner:
      type: object
      properties:
        isOrgRegisteredPractioner:
          type: string
          description: >-
            This is to track if organisation registered as a body corporate for
            class 2 buildings or not. This is a mandatory field, applicable for
            createCDC operation only and not for EditRegisteredPractitioner
            operation.
        isPractitionerRegisteredForClass2:
          type: string
          description: >-
            This is to track if practitioner registered for class 2 buildings or
            not or not applicable. This is a mandatory field, applicable for
            createCDC operation only and not for EditRegisteredPractitioner
            operation. - Yes - No - Not Applicable.
          example: refer to description for values.
        appropriatePractitioner:
          type: string
          description: >-
            This checkbox is provided to select the building practitioner as
            appropriate practitioner.  This is a mandatory field, applicable for
            createCDC operation only and not for EditRegisteredPractitioner
            operation.
        organisationDetails:
          $ref: '#/components/schemas/organisationDetails'
        practitionerdetails:
          $ref: '#/components/schemas/practitionerdetails'
    organisationDetails:
      required:
        - ABN
        - bodyCorporateRegisterationNo
        - companyAddress
        - companyEmail
        - legalName
        - searchBusinessBy
      type: object
      properties:
        bodyCorporateRegisterationNo:
          type: string
          description: >-
            It will hold the body Corporate Registeration number. It will be
            applicable and mandatory if isOrgRegisteredPractitioner is selected
            as 'Yes'
          minLength: 1
        searchBusinessBy:
          type: string
          description: >-
            Dropdown filed having ABN and ACN as options. It will be applicable
            if isOrgRegisteredPractitioner is selected as 'No'. One of the below
            mentioned values must be selected for searchBusinessBy 1. ABN 2. ACN
            3. Name
          example: Refer to description for values
          minLength: 1
        ABN:
          maxLength: 14
          type: string
          description: >-
            The Australian Business Number (ABN) is a unique 11 digit identifier
            issued to all entities registered in the Australian Business
            Register (ABR)
          minLength: 1
        ACN:
          maxLength: 11
          type: string
          description: The Australian Company Number (ACN) is a nine digit number
        legalName:
          type: string
          description: It will hold the company name
          minLength: 1
        tradingName:
          type: string
          description: Name of the trading
        companyAddress:
          type: string
          description: It will hold the company Full address.
          minLength: 1
        companyEmail:
          maxLength: 250
          type: string
          description: Holds the email address.
          format: email
          minLength: 1
      description: It will hold the organisation details
    practitionerdetails:
      type: object
      properties:
        practitionerTypes:
          type: array
          description: >-
            MultiSelect List  where we can choose sub type of practitioner. One
            of the below mentioned values must be selected for practitionertype.
          items:
            $ref: '#/components/schemas/practitionertypes'
        practitionerRegistrationNumber:
          type: string
          description: >-
            This is to track the Practitioner registration number. It will be
            applicable and mandatory if isPractitionerRegisteredForClass2 is
            selected as 'Yes'
        title:
          type: string
          description: >-
            This is to track the salutation. It will be applicable if
            isPractitionerRegisteredForClass2 is selected as 'No'. One of the
            below mentioned values must be selected for title 1. Miss 2. Mr 3.
            Mrs 4. Ms
          example: Refer to description for values
        firstName:
          maxLength: 20
          type: string
          description: >-
            This is to track the first name and mandatory if
            isPractitionerRegisteredForClass2 is selected as 'No'.
        otherName:
          maxLength: 20
          type: string
          description: This is to track the other name
        familyName:
          maxLength: 20
          type: string
          description: >-
            This is to track the family Name and mandatory if
            isPractitionerRegisteredForClass2 is selected as 'No'.
        contactNumber:
          maxLength: 10
          minLength: 8
          pattern: ^[0-9]+$
          type: string
          description: >-
            This is to track the phone number and mandatory if
            isPractitionerRegisteredForClass2 is selected as 'No'.
        email:
          maxLength: 250
          type: string
          description: >-
            This is to track the email and mandatory if
            isPractitionerRegisteredForClass2 is selected as 'No'.
          format: email
        address:
          maxLength: 250
          type: string
          description: >-
            This is to track the address and mandatory if
            isPractitionerRegisteredForClass2 is selected as 'No'.
      description: It will hold the Practitioner Details.
    designpractitioner:
      type: object
      properties:
        isOrgRegisteredPractioner:
          type: string
          description: >-
            This is to track if organisation registered as a body corporate for
            class 2 buildings or not. This is a mandatory field, applicable for
            createCDC operation only and not for EditRegisteredPractitioner
            operation.
        isPractitionerRegisteredForClass2:
          type: string
          description: >-
            This is to track if practitioner registered for class 2 buildings or
            not or not applicable. This is a mandatory field, applicable for
            createCDC operation only and not for EditRegisteredPractitioner
            operation. - Yes - No - Not Applicable.
          example: refer to description for values.
        appropriatePractitioner:
          type: string
          description: >-
            This checkbox is provided to select the design practitioner as
            appropriate practitioner.
        designPractitionerType:
          type: string
          description: >-
            As User Interface has been uplifted to include multiple values for
            this field, a new field practitionerTypes has been introduced to
            accommodate this multiselect field list. However, this field will be
            continued to be supported by appending the multiple values into
            single field with ";" separated until the next subsequent major
            release of API.Where possible, please use "practitionerTypes"
            instead of this.
        organisationDetails:
          $ref: '#/components/schemas/organisationDetails'
        practitionerdetails:
          $ref: '#/components/schemas/practitionerdetails'
    principaldesignpractitioner:
      type: object
      properties:
        isOrgRegisteredPractioner:
          type: string
          description: >-
            This is to track if organisation registered as a body corporate for
            class 2 buildings or not. This is a mandatory field, applicable for
            createCDC operation only and not for EditRegisteredPractitioner
            operation.
        isPractitionerRegisteredForClass2:
          type: string
          description: >-
            This is to track if practitioner registered for class 2 buildings or
            not or not applicable. This is a mandatory field, applicable for
            createCDC operation only and not for EditRegisteredPractitioner
            operation. - Yes - No - Not Applicable.
          example: refer to description for values.
        appropriatePractitioner:
          type: string
          description: >-
            This checkbox is provided to select the principal design
            practitioner as appropriate practitioner.
        organisationDetails:
          $ref: '#/components/schemas/organisationDetails'
        practitionerdetails:
          $ref: '#/components/schemas/practitionerdetails'
    practitionertypes:
      type: object
      properties:
        practitionerTypeValue:
          type: string
          description: >-
            MultiSelect List where we can choose one or more sub type of
            Building practitioner. 1. General 2. Body Corporate Nominee
            MultiSelect List filed where we can choose sub type of Design
            practitioner. 1. Architectural 2. Building Design (Low Rise) 3.
            Building Design (Medium Rise) 4. Civil Engineering 5. Drainage 6.
            Drainage (restricted) 7. Electrical Engineering 8. Facade 9. Fire
            Safety Engineering 10. Fire Systems (detection and alarm systems)
            11. Fire Systems (fire hydrant and fire hose reel) 12. Fire Systems
            (fire sprinkler) 13. Fire Systems (mechanical smoke control) 14.
            Geotechnical Engineering 15. Mechanical Engineering 16. Structural
            Engineering 17. Vertical transportation MultiSelect List filed where
            we can choose one or more sub type of principal design practitioner.
            1. General
          example: Refer to description for values.
    editRegisteredPractitionerDetails:
      required:
        - address
        - companyName
        - email
        - familyName
        - firstName
        - licenseNumber
      type: object
      properties:
        title:
          type: string
        firstName:
          maxLength: 20
          type: string
          minLength: 1
        otherName:
          maxLength: 20
          type: string
        familyName:
          maxLength: 20
          type: string
          minLength: 1
        contactNumber:
          maxLength: 10
          minLength: 8
          pattern: ^[0-9]+$
          type: string
        email:
          maxLength: 250
          type: string
          minLength: 1
        companyName:
          maxLength: 150
          type: string
          description: Required as a part of Building Practitioner. Company Name
          minLength: 1
        address:
          maxLength: 150
          type: string
          description: Required as a part of Building Practitioner. Address
          minLength: 1
        licenseNumber:
          type: object
          description: >-
            Required as a part of Building Practitioner. License number or
            Permit number
        isPractitionerChanged:
          type: boolean
          description: Used to hold the reason for changing the registered practitioner.
        changeReason:
          type: string
          description: >-
            select the change reason options from below list. One of the below
            mentioned values must be selected for changeReason 1. Change of
            property developer 2. Change of head building contractor 3. Using
            internal company designers/engineers 4. Using external specialist
            designers/engineers 5. Other
          example: Refer to description for values
        practitionerStartDate:
          type: string
          description: >-
            Required if is Practitioner Changed selected as 'Yes'. Used to hold
            the date when the newly selected practitioner started the
            development.
          format: date
          example: '2020-09-10'
        otherJustification:
          maxLength: 512
          type: string
          description: >-
            It is a required field when we select change reason as others from
            drop down.
    CommonApplicationType:
      type: object
      properties:
        commonApplicationType:
          type: string
    BuilderCompany:
      type: object
      properties:
        company:
          $ref: '#/components/schemas/applicantCompany'
        address:
          maxLength: 250
          type: string
          description: This is to track the address.
        email:
          type: string
          description: This is to track the email.
      description: A Company, Business, Government entity or other similar body.
    BuilderType:
      type: string
      description: >-
        This is to track the type of the builder chosen for the development.
        Please refer to reference data API for the latest values. Example values
        are as below 1.Individual 2.A company, Business, Government entity or
        other similar body.
      example: Refer to description for values
    BuilderPerson:
      type: object
      properties:
        title:
          type: string
          description: >-
            This is to track the title of the builder when the 'individual'
            option is chosen. sample values would be 1. Miss 2. Mr 3.
            Mrs             4. Ms
        firstName:
          maxLength: 20
          type: string
          minLength: 1
        otherName:
          maxLength: 20
          type: string
        familyName:
          maxLength: 20
          type: string
          minLength: 1
        contactNumber:
          maxLength: 10
          minLength: 8
          pattern: ^[0-9]+$
          type: string
        email:
          maxLength: 250
          minLength: 1
          type: string
        address:
          maxLength: 250
          type: string
        licenseNumber:
          type: string
          description: >-
            This is to track the Licence number or Permit number in the case of
            an owner builder.
    BuilderOrPrincipalContractorDetails:
      type: object
      properties:
        builderType:
          $ref: '#/components/schemas/BuilderType'
        builderPerson:
          $ref: '#/components/schemas/BuilderPerson'
        builderCompany:
          $ref: '#/components/schemas/BuilderCompany'
